import { IsNotEmpty, IsOptional, IsString, ValidateIf } from 'class-validator';

export class LoginUserDto {
    @ValidateIf(o => !o.phone && !o.wechat_code)
    @IsNotEmpty({ message: '用户名或邮箱不能为空' })
    username?: string; // 可以是用户名或邮箱

    @ValidateIf(o => !o.phone && !o.wechat_code)
    @IsNotEmpty({ message: '密码不能为空' })
    password?: string;

    @ValidateIf(o => !o.username && !o.wechat_code)
    @IsNotEmpty({ message: '手机号不能为空' })
    phone?: string;

    @ValidateIf(o => o.phone && !o.username && !o.wechat_code)
    @IsNotEmpty({ message: '验证码不能为空' })
    sms_code?: string;

    @ValidateIf(o => !o.username && !o.phone)
    @IsNotEmpty({ message: '微信授权码不能为空' })
    wechat_code?: string;

    @IsOptional()
    @IsString()
    login_type?: 'username' | 'phone' | 'wechat';
} 